#include <iostream>
using namespace std;

// 打印数据函数
void showValue(const int &val)
{
    // error: val = 789;     // 防止误操作
    cout << "val = " << val << endl;
}

void f(int &i)
{
    i++;
    cout << i << endl;
}

int main()
{
    // 常量引用
    // 使用场景：用来修饰形参，防止误操作
    int a = 10;
    // error: int& ref = 10;     // 引用必须引一块合法的内存空间

    // 加上const之后  编译器将代码修改为 int temp = 10; const int& ref = temp;
    const int &ref = 10; // ref变成不可修改

    // 同理：
    int b = 999;
    showValue(999); // ok
    showValue(b);
    cout << "b = " << b << endl;

    int c = 89;
    // f(89); // error
    f(c);

    return 0;
}